package com.eonmind.knowledge.dto;

import com.eonmind.common.contract.data.request.PageRequest;
import lombok.Data;
import lombok.ToString;

/**
 * @Author: AKang
 * @Description: 知识库数据传输类
 * @CreateTime: 2025-05-09
 */
public class KnowledgeDto {
    /**
     * @description: 知识库创建请求参数封装
     * @author: AKang
     * @date: 2025/5/9 17:08
     **/
    @Data
    @ToString
    public static class KnowledgeCreateRequest {
        /**
         * 知识库名称
         **/
        private String name;
        /**
         * 知识库类别
         **/
        private Integer knowledgeType;
        /**
         * 知识库描述
         **/
        private String desc;

    }

    /**
     * @description: 知识库更新请求参数封装
     * @author: AKang
     * @date: 2025/5/11 20:43
     **/
    @Data
    @ToString
    public static class KnowledgeUpdateRequest {
        /**
         * 知识库id
         **/
        private Long knowledgeId;
        /**
         * 知识库名称
         **/
        private String name;
        /**
         * 知识库类别
         **/
        private Integer knowledgeType;
        /**
         * 知识库描述
         **/
        private String desc;

    }

    /**
     * @description: 知识库删除请求参数封装
     * @author: AKang
     **/
    @Data
    @ToString
    public static class KnowledgeDeleteRequest {
        /**
         * 知识库id
         **/
        private Long knowledgeId;

    }

    /**
     * 知识库响应参数封装
     **/
    @Data
    @ToString
    public static class KnowledgeResponse {
        /**
         * 知识库id
         **/
        private Long id;
        /**
         * 知识库名称
         **/
        private String name;
        /**
         * 知识库类别
         **/
        private Integer knowledgeType;
        /**
         * 百炼知识库名称
         **/
        private String indexName;
        /**
         * 百炼知识库索引
         **/
        private String indexId;
        /**
         * 知识库描述
         **/
        private String desc;
        /**
         * 创建时间
         **/
        private Long createTime;
        /**
         * 更新时间
         **/
        private Long updateTime;
        /**
         * 包含文档数量
         **/
        private Long documentCount;
    }

    /**
     * 知识库分页请求参数封装
     */
    @Data
    @ToString
    public static class KnowledgePageRequest {
         /**
         * 关键字
         **/
        private  String keyword;
         /**
         * 分页参数
         **/
        private PageRequest page = new PageRequest();
    }

    /**
     * 百炼知识库响应参数封装
     **/
    @Data
    @ToString
    public static class BailianKnowledgeResponse {
        /**
         * 百炼知识库名称
         **/
        private String indexName;
        /**
         * 百炼知识库索引
         **/
        private String indexId;
    }

    /**
     * 百炼知识库文档上传请求参数封装
     **/
    @Data
    @ToString
    public static class KnowledgeUploadRequest {
        /**
         * 文档原始名
         */
        private String originalName;
        /**
         * 文档实际(真实,避免文件名冲突处理后)名
         */
        private String trueName;
    }

}
